'''
Description: 
Author: Zilu
Date: 2021-11-03 19:45:50
Version: 
LastEditTime: 2021-11-03 20:22:17
LastEditors: Zilu
'''

# python3 中，字符串使用Unicode编码
# 可以使用ord()函数获取字符的整数表示，chr()函数可以把相应的编码转换成字符
print(ord('A'))
print(ord("中"))
print(chr(66))
print(chr(29951))

# 也可以用十六进制表示字符
print("\u4e2d\u6587")

# python对bytes类型的数据使用带 b 的前缀表示，便于在网络中传输
x = b'ABC'
y = 'ABC'
z = '中文'

# 可以使用encode()函数指定字符串变量的编码方式
x.encode("ascii")
y.encode("ascii")
"中文".encode("utf-8")
# 下面这个会报错，因为中文不能用ASCII编码
# "中文".encode("ascii")

# 反之，可以用decode()函数将bytes解码成string，bytes中不能显示成ascii码的字节，用\x##表示
x.decode("ascii")
b'\xe4\xb8\xad\xe6\x96\x87'.decode("utf-8")

# 可以使用errors="ignore"忽略小部分无法解析的字节
b'\xe4\xb8\xad\xff'.decode("utf-8", errors="ignore")         # 0xff 无法解析

# python文件头通常加上下面两句
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 第一句告诉Linux/OS X系统这是一个python程序，windows会忽略
# 第二句告诉python解释器按照utf-8编码读取

# 使用格式化字符串，字符串中用转换说明符占位，后面用一个 % 跟上对应数量的量
print("Hello, %s. Your account has %3.4f dollars. You are in the %d%% of this city." %("Alice",1234.567890,10))

# 使用format格式化
print('Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125))

# 格式化字符串 f-string
r = 2.5
s = 3.14 * r ** 2
print(f'The area of a circle with radius {r} is {s:.2f}')


